<!DOCTYPE html>
<html dir="rtl">
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title></title>
    <link rel="Stylesheet" href="../css/analysis.css" />
    <script type="text/javascript">
        function init() {
            if (window.location.hash) {
                var parentDiv, nodes, i, helpInfo, helpId, helpInfoArr, helpEnvFilter, envContent, hideEnvClass, hideNodes;
                helpInfo = window.location.hash.substring(1);
                    if(helpInfo.indexOf("-")) {
                        helpInfoArr = helpInfo.split("-");
                        helpId = helpInfoArr[0];
                        helpEnvFilter = helpInfoArr[1];
                    }
                    else {
                        helpId = helpInfo;
                    }
                parentDiv = document.getElementById("topics");
                nodes = parentDiv.children;
                    hideEnvClass = (helpEnvFilter === "OnlineOnly"? "PortalOnly": "OnlineOnly");
                    if(document.getElementsByClassName) {
                        hideNodes = document.getElementsByClassName(hideEnvClass);
                    }
                    else {
                        hideNodes = document.querySelectorAll(hideEnvClass);
                    }
                for(i=0; i < nodes.length; i++) {
                    if(nodes[i].id !== helpId) {
                        nodes[i].style.display ="none";
                    }
                    }
                    for(i=0; i < hideNodes.length; i++) {
                        hideNodes[i].style.display ="none";
                    }
                }
            }
    </script>
</head>
<body onload="init()">
<div id="topics">
    <div id="toolDescription" class="regularsize">
        <h2>Join Features</h2><p/>
        <h2><img src="../images/GUID-900E33CD-3789-45B5-8F0C-92D91E64D2A4-web.png" alt="Join Features"></h2>
        <hr/>
    <p>The Join  Features  task works with two
layers. Join  Features  joins attributes from one
feature to another based on spatial, temporal, and attribute
relationships or some combination of the  three. The tool determines all input features that meet the specified join conditions and joins the second input layer to the first. You can optionally join all features to the matching features or summarize the matching features.
    </p>
    <p>Join Features can be applied to points, lines, areas, and tables. A temporal join requires that your input data is time-enabled, and a spatial join requires that your data has a geometry. 
    </p>
    </div>
    <!--Parameter divs for each param-->
    <div id="targetLayer">
        <div><h2>Choose target layer</h2></div>
        <hr/>
        <div>
            <p>The layer that will have  attributes from the join layer appended to its table.
            </p>
            <p>Analysis using the  <b>Near</b> spatial relationship requires a projected coordinate system. You can set the <b>Processing coordinate system</b> in <b>Analysis Environments</b>. If your processing coordinate system is not set to a projected coordinate system, you will be prompted to set it when you <b>Run Analysis</b>.
            </p>
            <p>In addition to choosing a layer from your map, you can choose  <b>Browse Layers</b> at the bottom of the drop-down list to browse to your contents for a big data file share dataset or feature layer.
            </p>
        </div>
    </div>
    <div id="joinLayer">
        <div><h2>Choose layer to join to target layer</h2></div>
        <hr/>
        <div>
            <p>The join layer with the attributes that will be appended to the target layer.
            </p>
            <p>In addition to choosing a layer from your map, you can choose  <b>Browse Layers</b> at the bottom of the drop-down list to browse to your contents for a big data file share dataset or feature layer.
            </p>
        </div>
    </div>
    <div id="joinOperation">
        <div><h2>Choose join operation</h2></div>
        <hr/>
        <div>
            <p>Determines how joins between the target and join layers will be handled in the output if multiple joining features are found to have the same relationship to the layer being joined. There are two join operations from which to choose:
                <ul>
                    <li> <b>Join one to one</b>&mdash;This option summarizes all the matching features to each feature being joined.
                    </li>
                    <li> <b>Join one to many</b>&mdash;This option joins all the matching features to the join layer.
                    </li>
                </ul>
                
            </p>
            <p>For example, suppose we wanted to find supermarkets within 2 kilometers of a farmers market.   In this case the layer being joined to has a single feature representing a farmers market, and the joining features represents the local grocery stores which has attributes such as total annual sales. Using the  <b>Join Features</b> tool, we find that five grocery stores meet that criteria. If we specified a join operation of <b>Join one to many</b>, we would end up with five features in our result, each row representing the farmers market and a supermarket. If we specified a <b>Join one to one</b> relationship, we would end up with one feature representing the farmers market and the summarized information from the supermarkets, such as the count (2), and other statistics such as the sum of annual sales.
            </p>
        </div>
    </div>
    <div id="joinOptions">
        <div><h2>Select one or more joins</h2></div>
        <hr/>
        <div>
            <p>You may apply one, two, or three join types. The types of joins include the following: 
                <ul>
                    <li> <b>Spatial</b>&mdash;Uses a specified spatial relationship to join features. This requires that both layers have a geometry.
                    </li>
                    <li> <b>Temporal</b>&mdash;Uses a temporal relationship to join features. This requires time to be enabled on both layers.
                    </li>
                    <li> <b>Attribute</b>&mdash;Joins features based on equal fields.
                    </li>
                </ul>
                
            </p>
            <p>
            </p>
        </div>
    </div>
    <div id="spatialRelationship">
        <div><h2>Choose a spatial relationship</h2></div>
        <hr/>
        <div>
            <p> The spatial relationship that will determine if features are joined to each other. The available relationships will depend on the type of geometry (point, polyline, polygons) being used as the input features. The available relationships include the following:
                <ul>
                    <li> <b>Intersects</b>&mdash;The feature will be matched if they intersect each other.
                    </li>
                    <li> <b>Equals</b>&mdash;The features will be matched if they have the same geometry.
                    </li>
                    <li> <b>Near</b>&mdash;The features will be matched if they are within a specified distance of each other. The target   layer must be in a projected coordinate system or the processing spatial reference must be set to a projected coordinate system using the <b>Analysis Environments</b> if a spatial <b>Near</b> relationship is used.
                    </li>
                    <li> <b>Contains</b>&mdash;The features will be matched if the layer being joined to is contained in the joining features.
                    </li>
                    <li> <b>Within</b>&mdash;The features will be matched if the layer being joined to is within the joining features.
                    </li>
                    <li> <b>Touches</b>&mdash;The features will be matched it they have a boundary that touches the feature being joined to.
                    </li>
                    <li> <b>Crosses</b>&mdash;The features will be matched if they have a crossing outline.
                    </li>
                    <li> <b>Overlaps</b>&mdash;The features will be joined if they overlap.
                    </li>
                </ul>
                
            </p>
        </div>
    </div>
    <div id="nearSpatial">
        <div><h2></h2></div>
        <hr/>
        <div>
            <p>This distance specifies the radius applied to a spatial near relationship.
            </p>
            <p>Suppose you had a dataset representing a nuclear plant and a dataset representing residences. You could set a 1 kilometer near distance to find houses within 1 kilometer of the nuclear plant. 
            </p> 
        </div>
    </div>
    <div id="temporalRelationship">
        <div><h2>Choose a temporal relationship</h2></div>
        <hr/>
        <div>
            <p>The temporal relationship that will determine if features are joined to each other. This option is only available if time is enabled on both layers and the  available relationships will depend on the type of time (instant or interval) being used for the input features. The available relationships include the following:
                <ul>
                    <li> <b>Meets</b>&mdash;The feature will be matched if the first feature meets the second.
                    </li>
                    <li> <b>Met By</b>&mdash;The feature will be matched if the first features are met by the second.
                    </li>
                    <li> <b>Overlaps</b>&mdash;The feature will be matched if the first features overlap the second.
                    </li>
                    <li> <b>Overlapped By</b>&mdash;The feature will be matched if the first features are overlapped by the second.
                    </li>
                    <li> <b>During</b>&mdash;The feature will be matched if the first features are during the second.
                    </li>
                    <li> <b>Contains</b>&mdash;The feature will be matched if the first feature contains the second.
                    </li>
                    <li> <b>Equals</b>&mdash;The feature will be matched if the first feature equals the second.
                    </li>
                    <li> <b>Finishes</b>&mdash;The feature will be matched if the first feature finishes the second.
                    </li>
                    <li> <b>Finished By</b>&mdash;The feature will be matched if the first features are finished by the second.
                    </li>
                    <li> <b>Starts</b>&mdash;The feature will be matched if the first feature starts  the second.
                    </li>
                    <li> <b>Started By</b>&mdash;The feature will be matched if the first features are started by the second.
                    </li>
                    <li> <b>Intersects</b>&mdash;The features are mapped if the times intersect at all.
                    </li>
                    <li> <b>Near</b>&mdash;The features will be joined if they are near each other, determined by a specified time.
                    </li>
                </ul>
                
            </p>
        </div>
    </div>
    <div id="nearTemporal">
        <div><h2></h2></div>
        <hr/>
        <div>
            <p>This temporal distance specifics the temporal radius applied to a temporal near relationship.
            </p>
            <p>Suppose you have a layer of boating incidents and a layer of GPS tracks for a hurricane. You could look for boating incidents within a specified distance of hurricane tracks in both space (1 kilometer) and in time (5 hours). This would result in boating incidents joined to hurricanes that occurred close together in space and time. 
            </p>
        </div>
    </div>
    <div id="attributeRelationship">
        <div><h2>Choose the fields to match</h2></div>
        <hr/>
        <div>
            <p>This relationship will match values in a field from one layer to  values in a field in another layer. 
            </p>
            <p>For example, suppose we had a countywide geographic layer of residential addresses (including a field  <i>ZIP</i>) and a tabular dataset of health demographics by ZIP Code (a field named <i>HEALTHZIP</i>). We can join the health dataset to the residential data by matching the field <i>ZIP</i> to <i>HEALTHZIP</i>, which will result in a layer of residences with the corresponding health data.
            </p>
        </div>
    </div>
    <div id="summaryFields">
        <div><h2>Add statistics (optional)</h2></div>
        <hr/>
        <div>
            <p>If the join operation is   <b>Join one to one</b>, you can calculate statistics on your joined features. By default, all statistics will be calculated.
            </p>
            <p>You can calculate statistics on features that are summarized. On numeric fields you can calculated the following:
                <ul>
                    <li>Count&mdash;Calculates the number of nonnull values. Can be used on numeric fields or strings. The count of [null, 0, 2] is 2.
                    </li>
                    <li>Sum&mdash;The sum of numeric values in a field. The sum of [null, null, 3] is 3.
                    </li>
                    <li>Mean&mdash;The mean of numeric values. The mean of [0, 2, null] is 1.
                    </li>
                    <li>Min&mdash;The minimum value of a numeric field. The minimum of [0, 2, null] is 0. 
                    </li>
                    <li>Max&mdash;The maximum value of a numeric field. The maximum value of [0, 2, null] is 2.
                    </li>
                    <li>Range&mdash;The range of a numeric field. This is calculated as the minimum values subtracted from the maximum value. The range of [0, null, 1] is 1. The range of [null, 4] is 0.
                    </li>
                    <li>Variance&mdash;The variance of a numeric field in a track. The  variance of [1] is null. The variance of [null, 1,1,1] is 1.
                    </li>
                    <li>Standard deviation&mdash;The standard deviation of a numeric field. The standard deviation of [1] is null. The standard deviation of [null, 1,1,1] is 1. 
                    </li>
                </ul>
                
            </p>
            <p>On string fields you can calculate the following:
                <ul>
                    <li>Count&mdash;The number of nonnull strings.
                    </li>
                    <li>Any&mdash;This statistic is a random sample of a string value in the specified field.
                    </li>
                </ul>
                All statistics are calculated on nonnull values. The resulting layer will contain a new field for each statistic calculated. Any number of statistics can be added by choosing an attribute and statistic.
            </p>
            <p>All statistics are calculated on nonnull values. The resulting layer will contain a new fields for each statistic calculated. Any number of statistics can be added by choosing an attribute and statistic.
            </p>
        </div>
    </div>
    <div id="joinCondition">
        <div><h2>Build an expression to join features by (optional)</h2></div>
        <hr/>
        <div>
            <p>Applies a condition to specified fields. Only features with fields that meet these conditions will be joined.
            </p>
            <p>For example, suppose we want to apply a join to a dataset for only those  features where  <i>health_spending</i>  is greater than 20 percent of <i>income</i>.  To do this,  apply a join condition of <code>target.health_spending &gt; (join.income * .20)</code> using the field <i>health_spending</i> from the first dataset (the dataset features are joined to) and the <i>income</i> field from the second dataset (the dataset being joined).
            </p>
            <p>Join conditions can be applied using the expression calculator.
            </p>
        </div>
    </div>
    <div id="dataStore">
        <div><h2>Choose datastore</h2></div>
        <hr/>
        <div>
            <p>GeoAnalytics results are stores to an ArcGIS Data Store and exposed as a feature layer in   Portal for ArcGIS. In most cases, results should be stored to the spatiotemporal data store and this is the default. In some cases saving results to the  relational data store is a good option. The following are reasons why you may want to store results in the relational data store: 
                <ul>
                    <li>Use results in portal to portal collaboration.
                    </li>
                    <li>Enable sync capabilities with your results.
                    </li>
                </ul>
                
            </p>
            <p>You should not use the relational data store if you expect your GeoAnalytics results to increase, and need to take advantage of the spatiotemporal big data store's capabilities to handle large amounts of data. 
            </p>
        </div>
    </div>
    <div id="outputName">
        <div><h2>Result layer name</h2></div>
        <hr/>
        <div>
            <p> This is the name of the layer that will be created in <b>My
Content</b> and added to the map. The default name is based on the
tool name and the input layer name. If the layer already exists, the tool will fail.
            </p>
            <p>Using the  <b>Save result in</b> drop-down box, you can specify
the name of a folder in <b>My Content</b> where the result will be
saved.
            </p>
        </div>
    </div>
</div>
</html>
